/**
 * 1、class类的只读修饰符：readonly
 *    表示只读，用来防止在构造函数之外对属性进行赋值
 *    只能修饰类里面的属性，不能修饰方法
 */

//只读方式，只能由构造函数来改变属性的值
class Person {
    //只要是readonly修饰的属性，必须明确指出数据的类型
   readonly age: number =18
   constructor(age: number) {
       this.age = age
   }
}

let a = new Person(23)
// console.log(a.age);


//不加readonly
class Person1 {
    age: number =18
    constructor(age: number) {
        this.age = age
    }
    changeAge(){
        this.age = 21
    }
 }
 
 let a1 = new Person1(23)
 console.log(a1.changeAge());